import os
from zhipuai import ZhipuAI

from dotenv import load_dotenv, find_dotenv

# 加载.env文件
load_dotenv()
# 从环境变量中读取API密钥
api_key = os.getenv('ZHIPU_API_KEY')
# _ = load_dotenv(find_dotenv())

client = ZhipuAI(api_key=api_key)


def zhipu_util(user_content):
    messages = []
    if user_content:
        messages.append({"role": "user", "content": user_content})
    else:
        return {'error': 'Missing content in the request'}

    try:
        messages.append({"role": "system", "content": "不要假设或猜测传入函数的参数值，如果用户的描述不明确，请要求用户提供必要信息"})
        response = client.chat.completions.create(
            model="glm-4",  # 填写需要调用的模型名称
            messages=messages,
            # tools=tools,
        )
        answer = response.choices[0].message.content

        return {'answer': answer}
    except Exception as e:
        # 处理API调用中的异常，例如网络问题或API返回的错误
        return {'error': str(e)}  # 内部服务器错误


def generate_test_case_by_zhipu(prompt):
    messages = [{"role": "system", "content": "你是一个专业的测试工程师，你需要根据用户的描述来生成测试用例,总结整个文档的，不用写测试脚本等其他内容。"}]
    messages.append({"role": "user", "content": prompt})
    print(messages)
    response = client.chat.completions.create(
        model="glm-3-turbo",  # 填写需要调用的模型名称
        messages=messages,
        temperature=0
    )

    answer = response.choices[0].message.content + "\n\n" + "### * 注意：测试用例由AI生成，请自己斟酌后使用"
    return {'answer': answer}


if __name__ == '__main__':
    prompt = f"""
        根据以下需求文档生成一个全面的测试用例：

        需求文档：
        你好

        测试用例应包括：
        - 功能点总结
        - 先决条件
        - 测试步骤
        - 预期结果
        """
